package org.mine.design.builder.core;
import org.mine.design.builder.controller.param.RequestParam;
import org.mine.design.builder.enums.DriverTypeEnum;
import org.mine.design.builder.enums.EarningsTypeEnum;

import java.util.List;


public abstract class EarningsBuilder {

    public abstract DriverTypeEnum getDriverType();


    public List<EarningsResult> getResult(RequestParam param) {
        List<EarningsResult> results = buildIncome(param);
        results.addAll(buildDeduction(param));
        return results;
    }

    /**
     * 构建收入项
     */
    public abstract List<EarningsResult> buildIncome(RequestParam param);

    /**
     * 构建扣减项
     */
    public abstract List<EarningsResult> buildDeduction(RequestParam param);



}
